package com.young.shop.api.service;

import com.young.shop.pojo.entity.Order;
import com.young.shop.pojo.vo.OrderServiceVO;

import java.util.List;

/**
 * 订单业务处理
 */
public interface OrderService {
    /**
     * 查询订单
     * @param userId 用户id
     * @return 订单信息列表
     */
    List<Order> mountByUserId(Long userId);

    /**
     * 修改状态
     * @param userId 用户id
     * @param orderId 订单id
     * @param status 订单状态
     * @return 1为成功，其他为失败
     */
    int changStatus(Long userId,Long orderId,int status);

    /**
     * 查询状态订单
     * @param userId 用户id
     * @param status 订单状态
     * @return 状态订单列表
     */
    List<OrderServiceVO> queryByStatus(Long userId,int status);

    /**
     * 查询订单详情
     * @param orderId 订单id
     * @return
     */
    List<OrderServiceVO> particularsByOrderId(Long orderId);

    /**
     * 通过订单id修改订单状态为已付款
     * @param orderId
     * @return
     */
    int PaymentOrderByOrderId(String orderId);

    /**
     * 通过订单id修改订单状态为已取消
     * @param orderId
     * @return
     */
    int refundOrderByOrderId(String orderId);

    /**
     * 根据订单id修改订单状态为申请取消
     * @param orderId
     * @return
     */
    int cancellationOrderByOrderId(Long orderId);

    /**
     * 跟据订单id修改订单状态为申请退款
     * @param orderId
     * @return
     */
    int applyForRefund(Long orderId);

    /**
     * 根据订单id修改订单状态为删除订单
     * @param orderId
     * @return
     */
    int deleteOrder(Long orderId);

    /**
     * 根据订单id修改订单状态为待评价
     * @param orderId
     * @return
     */
    int confirmReceipt(Long orderId);
}
